package phoenix.core.data_models;

import java.util.HashMap;
import java.util.Map;

import phoenix.core.PhoenixManager;
import phoenix.core.base.DataModelBase;

public class PriceLinkDataModel extends DataModelBase
{
	public String three_day_backend_link;
	public String one_mounth_backend_link;
	public String three_mounth_backend_link;
	public String six_mounth_backend_link;

	public String free_communicate_backend_link;
	public String vip_in_search_backend_link;
	public String full_upgrade_backend_link;

	private String actual_3d_price;
	private String actual_1m_price;
	private String actual_3m_price;
	private String actual_6m_price;

	private String actual_free_communicate_price;
	private String actual_vip_in_search_price;
	private String actual_full_upgrade_price;

	private String expected_3d_price;
	private String expected_1m_price;
	private String expected_3m_price;
	private String expected_6m_price;

	private String expected_free_communicate_price;
	private String expected_vip_in_search_price;
	private String expected_full_upgrade_price;

	private Map<String, String> campaign_id = new HashMap<String, String>();
	private Map<String, String> location = new HashMap<String, String>();

	public PriceLinkDataModel(PhoenixManager p_phoenix)
	{
		super(p_phoenix);

		// Init list of enabled sites
		campaing_id_init();

		// Init list of enabled locations
		location_init();

		String camp_id = campaign_id.get(phoenix.testModel().getSiteName());
		String user_loc = location.get(phoenix.testModel().getLocation());

		three_day_backend_link = phoenix.config().BACKEND_URL_BASE
				+ "/payment/stockList?campaign_id="
				+ camp_id
				+ "&ArrayProviderFilterForm%5Bgeo_modificator_id%5D="
				+ user_loc
				+ "&ArrayProviderFilterForm%5Bpackage_id%5D=1&ArrayProviderFilterForm%5Bis_active%5D=1&phoenix%5Cpackages%5Cextensions%5Cpackages%5Cmodels%5CStock_page=1";
		one_mounth_backend_link = phoenix.config().BACKEND_URL_BASE
				+ "/payment/stockList?campaign_id="
				+ camp_id
				+ "&ArrayProviderFilterForm%5Bgeo_modificator_id%5D="
				+ user_loc
				+ "&ArrayProviderFilterForm%5Bpackage_id%5D=2&ArrayProviderFilterForm%5Bis_active%5D=1&phoenix%5Cpackages%5Cextensions%5Cpackages%5Cmodels%5CStock_page=1";
		three_mounth_backend_link = phoenix.config().BACKEND_URL_BASE
				+ "/payment/stockList?campaign_id="
				+ camp_id
				+ "&ArrayProviderFilterForm%5Bgeo_modificator_id%5D="
				+ user_loc
				+ "&ArrayProviderFilterForm%5Bpackage_id%5D=3&ArrayProviderFilterForm%5Bis_active%5D=1&phoenix%5Cpackages%5Cextensions%5Cpackages%5Cmodels%5CStock_page=1";
		six_mounth_backend_link = phoenix.config().BACKEND_URL_BASE
				+ "/payment/stockList?campaign_id="
				+ camp_id
				+ "&ArrayProviderFilterForm%5Bgeo_modificator_id%5D="
				+ user_loc
				+ "&ArrayProviderFilterForm%5Bpackage_id%5D=4&ArrayProviderFilterForm%5Bis_active%5D=1&phoenix%5Cpackages%5Cextensions%5Cpackages%5Cmodels%5CStock_page=1";

		free_communicate_backend_link = phoenix.config().BACKEND_URL_BASE
				+ "/payment/stockList?campaign_id="
				+ camp_id
				+ "&ArrayProviderFilterForm%5Bgeo_modificator_id%5D="
				+ user_loc
				+ "&ArrayProviderFilterForm%5Bpackage_id%5D=10&ArrayProviderFilterForm%5Bis_active%5D=1&phoenix%5Cpackages%5Cextensions%5Cpackages%5Cmodels%5CStock_page=1";
		vip_in_search_backend_link = phoenix.config().BACKEND_URL_BASE
				+ "/payment/stockList?campaign_id="
				+ camp_id
				+ "&ArrayProviderFilterForm%5Bgeo_modificator_id%5D="
				+ user_loc
				+ "&ArrayProviderFilterForm%5Bpackage_id%5D=9&ArrayProviderFilterForm%5Bis_active%5D=1&phoenix%5Cpackages%5Cextensions%5Cpackages%5Cmodels%5CStock_page=1";

		full_upgrade_backend_link = phoenix.config().BACKEND_URL_BASE
				+ "/payment/stockList?campaign_id="
				+ camp_id
				+ "&ArrayProviderFilterForm%5Bgeo_modificator_id%5D="
				+ user_loc
				+ "&ArrayProviderFilterForm%5Bpackage_id%5D=8&ArrayProviderFilterForm%5Bis_active%5D=1&phoenix%5Cpackages%5Cextensions%5Cpackages%5Cmodels%5CStock_page=1";
	}

	private void location_init()
	{
		// if you want test more location - put array 'location' need locations on page
		// https://my.platformphoenix.com/payment/stockList?campaign_id=4dc4e7d4153211e3876fd43d7e59e472
		// http://i.shotnes.com/iKb772yQ
		location.put("UK", "1");
	}

	private void campaing_id_init()
	{
		// if you want test more sites - put array 'campaign_id' need campaign_id on page
		// https://my.platformphoenix.com/payment/campaignList
		// http://i.shotnes.com/lhb77258

		campaign_id.put("flirt", "4835bc7a876a11e3a72190b11c05f0b9");
		campaign_id.put("benaughty", "4835bc7a876a11e3a72190b11c05f0b9");
		campaign_id.put("clickandflirt", "4835bc7a876a11e3a72190b11c05f0b9");
		campaign_id.put("wildbuddies", "4835bc7a876a11e3a72190b11c05f0b9");
		campaign_id.put("localsgowild", "4dc4e7d4153211e3876fd43d7e59e472");
	}

	public String getActual3dPrice()
	{
		return actual_3d_price;
	}

	public String getActual1mPrice()
	{
		return actual_1m_price;
	}

	public String getActual3mPrice()
	{
		return actual_3m_price;
	}

	public String getActual6mPrice()
	{
		return actual_6m_price;
	}

	public PriceLinkDataModel setActual3dPrice(String p_price)
	{
		actual_3d_price = p_price;
		return this;
	}

	public PriceLinkDataModel setActual1mPrice(String p_price)
	{
		actual_1m_price = p_price;
		return this;
	}

	public PriceLinkDataModel setActual3mPrice(String p_price)
	{
		actual_3m_price = p_price;
		return this;
	}

	public PriceLinkDataModel setActual6mPrice(String p_price)
	{
		actual_6m_price = p_price;
		return this;
	}

	public String getActualFreeCommunicatePrice()
	{
		return actual_free_communicate_price;
	}

	public String getActualVipPrice()
	{
		return actual_vip_in_search_price;
	}

	public String getActualFullUpgradePrice()
	{
		return actual_full_upgrade_price;
	}

	public PriceLinkDataModel setActualFreeCommunicatePrice(String p_price)
	{
		actual_free_communicate_price = p_price;
		return this;
	}

	public PriceLinkDataModel setActualVipPrice(String p_price)
	{
		actual_vip_in_search_price = p_price;
		return this;
	}

	public PriceLinkDataModel setActualFullUpgradePrice(String p_price)
	{
		actual_full_upgrade_price = p_price;
		return this;
	}

	public String getExpected3dPrice()
	{
		return expected_3d_price;
	}

	public String getExpected1mPrice()
	{
		return expected_1m_price;
	}

	public String getExpected3mPrice()
	{
		return expected_3m_price;
	}

	public String getExpected6mPrice()
	{
		return expected_6m_price;
	}

	public PriceLinkDataModel setExpected3dPrice(String p_price)
	{
		expected_3d_price = p_price;
		return this;
	}

	public PriceLinkDataModel setExpected1mPrice(String p_price)
	{
		expected_1m_price = p_price;
		return this;
	}

	public PriceLinkDataModel setExpected3mPrice(String p_price)
	{
		expected_3m_price = p_price;
		return this;
	}

	public PriceLinkDataModel setExpected6mPrice(String p_price)
	{
		expected_6m_price = p_price;
		return this;
	}

	public String getExpectedFreeCommunicatePrice()
	{
		return expected_free_communicate_price;
	}

	public String getExpectedVipPrice()
	{
		return expected_vip_in_search_price;
	}

	public String getExpectedFullUpgradePrice()
	{
		return expected_full_upgrade_price;
	}

	public PriceLinkDataModel setExpectedFreeCommunicatePrice(String p_price)
	{
		expected_free_communicate_price = p_price;
		return this;
	}

	public PriceLinkDataModel setExpectedVipPrice(String p_price)
	{
		expected_vip_in_search_price = p_price;
		return this;
	}

	public PriceLinkDataModel setExpectedFullUpgradePrice(String p_price)
	{
		expected_full_upgrade_price = p_price;
		return this;
	}

	public class CreditsPrices
	{
		public String backend_link_20_credits;
		public String backend_link_40_credits;
		public String backend_link_80_credits;
		public String backend_link_160_credits;
		public String backend_link_320_credits;
		public String backend_link_500_credits;
		public String backend_link_1000_credits;

		private String actual_20_cedits_price;
		private String actual_40_cedits_price;
		private String actual_80_cedits_price;
		private String actual_160_cedits_price;
		private String actual_320_cedits_price;
		private String actual_500_cedits_price;
		private String actual_1000_cedits_price;

		private String expected_20_cedits_price;
		private String expected_40_cedits_price;
		private String expected_80_cedits_price;
		private String expected_160_cedits_price;
		private String expected_320_cedits_price;
		private String expected_500_cedits_price;
		private String expected_1000_cedits_price;

		private Map<String, String> campaign_id = new HashMap<String, String>();

		private void location_init()
		{
			// if you want test more location - put array 'location' need locations on page
			// https://my.platformphoenix.com/payment/stockList?campaign_id=4dc4e7d4153211e3876fd43d7e59e472
			// http://i.shotnes.com/iKb772yQ
			location.put("UK", "1");
		}

		private void campaing_id_init()
		{
			// if you want test more sites - put array 'campaign_id' need campaign_id on page
			// https://my.platformphoenix.com/payment/campaignList
			// http://i.shotnes.com/lhb77258
			this.campaign_id.put("foreigngirlfriend", "a1cc26a6b37811e38e3e68b599be7074");
		}

		public CreditsPrices()
		{
			this.campaing_id_init();
			this.location_init();

			String camp_id = campaign_id.get(phoenix.testModel().getSiteName());
			String user_loc = location.get(phoenix.testModel().getLocation());

			backend_link_20_credits = phoenix.config().BACKEND_URL_BASE
					+ "/payment/stockList?campaign_id="
					+ camp_id
					+ "&ArrayProviderFilterForm%5Bgeo_modificator_id%5D="
					+ user_loc
					+ "&ArrayProviderFilterForm%5Bpackage_id%5D=30&ArrayProviderFilterForm%5Bis_active%5D=1&phoenix%5Cpackages%5Cextensions%5Cpackages%5Cmodels%5CStock_page=1";

			backend_link_40_credits = phoenix.config().BACKEND_URL_BASE
					+ "/payment/stockList?campaign_id="
					+ camp_id
					+ "&ArrayProviderFilterForm%5Bgeo_modificator_id%5D="
					+ user_loc
					+ "&ArrayProviderFilterForm%5Bpackage_id%5D=31&ArrayProviderFilterForm%5Bis_active%5D=1&phoenix%5Cpackages%5Cextensions%5Cpackages%5Cmodels%5CStock_page=1";

			backend_link_80_credits = phoenix.config().BACKEND_URL_BASE
					+ "/payment/stockList?campaign_id="
					+ camp_id
					+ "&ArrayProviderFilterForm%5Bgeo_modificator_id%5D="
					+ user_loc
					+ "&ArrayProviderFilterForm%5Bpackage_id%5D=32&ArrayProviderFilterForm%5Bis_active%5D=1&phoenix%5Cpackages%5Cextensions%5Cpackages%5Cmodels%5CStock_page=1";

			backend_link_160_credits = phoenix.config().BACKEND_URL_BASE
					+ "/payment/stockList?campaign_id="
					+ camp_id
					+ "&ArrayProviderFilterForm%5Bgeo_modificator_id%5D="
					+ user_loc
					+ "&ArrayProviderFilterForm%5Bpackage_id%5D=33&ArrayProviderFilterForm%5Bis_active%5D=1&phoenix%5Cpackages%5Cextensions%5Cpackages%5Cmodels%5CStock_page=1";

			backend_link_320_credits = phoenix.config().BACKEND_URL_BASE
					+ "/payment/stockList?campaign_id="
					+ camp_id
					+ "&ArrayProviderFilterForm%5Bgeo_modificator_id%5D="
					+ user_loc
					+ "&ArrayProviderFilterForm%5Bpackage_id%5D=34&ArrayProviderFilterForm%5Bis_active%5D=1&phoenix%5Cpackages%5Cextensions%5Cpackages%5Cmodels%5CStock_page=1";

			backend_link_500_credits = phoenix.config().BACKEND_URL_BASE
					+ "/payment/stockList?campaign_id="
					+ camp_id
					+ "&ArrayProviderFilterForm%5Bgeo_modificator_id%5D="
					+ user_loc
					+ "&ArrayProviderFilterForm%5Bpackage_id%5D=35&ArrayProviderFilterForm%5Bis_active%5D=1&phoenix%5Cpackages%5Cextensions%5Cpackages%5Cmodels%5CStock_page=1";

			backend_link_1000_credits = phoenix.config().BACKEND_URL_BASE
					+ "/payment/stockList?campaign_id="
					+ camp_id
					+ "&ArrayProviderFilterForm%5Bgeo_modificator_id%5D="
					+ user_loc
					+ "&ArrayProviderFilterForm%5Bpackage_id%5D=36&ArrayProviderFilterForm%5Bis_active%5D=1&phoenix%5Cpackages%5Cextensions%5Cpackages%5Cmodels%5CStock_page=1";

		}

		public CreditsPrices setActual20(String p_price)
		{
			actual_20_cedits_price = p_price;
			return this;
		}

		public CreditsPrices setActual40(String p_price)
		{
			actual_40_cedits_price = p_price;
			return this;
		}

		public CreditsPrices setActual80(String p_price)
		{
			actual_80_cedits_price = p_price;
			return this;
		}

		public CreditsPrices setActual160(String p_price)
		{
			actual_160_cedits_price = p_price;
			return this;
		}

		public CreditsPrices setActual320(String p_price)
		{
			actual_320_cedits_price = p_price;
			return this;
		}

		public CreditsPrices setActual500(String p_price)
		{
			actual_500_cedits_price = p_price;
			return this;
		}

		public CreditsPrices setActual1000(String p_price)
		{
			actual_1000_cedits_price = p_price;
			return this;
		}

		public CreditsPrices setExpected20(String p_price)
		{
			expected_20_cedits_price = p_price;
			return this;
		}

		public CreditsPrices setExpected40(String p_price)
		{
			expected_40_cedits_price = p_price;
			return this;
		}

		public CreditsPrices setExpected80(String p_price)
		{
			expected_80_cedits_price = p_price;
			return this;
		}

		public CreditsPrices setExpected160(String p_price)
		{
			expected_160_cedits_price = p_price;
			return this;
		}

		public CreditsPrices setExpected320(String p_price)
		{
			expected_320_cedits_price = p_price;
			return this;
		}

		public CreditsPrices setExpected500(String p_price)
		{
			expected_500_cedits_price = p_price;
			return this;
		}

		public CreditsPrices setExpected1000(String p_price)
		{
			expected_1000_cedits_price = p_price;
			return this;
		}

		public String getActual20()
		{
			return actual_20_cedits_price;
		}

		public String getActual40()
		{
			return actual_40_cedits_price;
		}

		public String getActual80()
		{
			return actual_80_cedits_price;
		}

		public String getActual160()
		{
			return actual_160_cedits_price;
		}

		public String getActual320()
		{
			return actual_320_cedits_price;
		}

		public String getActual500()
		{
			return actual_500_cedits_price;
		}

		public String getActual1000()
		{
			return actual_1000_cedits_price;
		}

		public String getExpected20()
		{
			return expected_20_cedits_price;
		}

		public String getExpected40()
		{
			return expected_40_cedits_price;
		}

		public String getExpected80()
		{
			return expected_80_cedits_price;
		}

		public String getExpected160()
		{
			return expected_160_cedits_price;
		}

		public String getExpected320()
		{
			return expected_320_cedits_price;
		}

		public String getExpected500()
		{
			return expected_500_cedits_price;
		}

		public String getExpected1000()
		{
			return expected_1000_cedits_price;
		}

	}
}
